package com.anlogic.sdk.utils;

import java.io.File;

import org.eclipse.debug.core.IStreamListener;

public interface ICommandLauncher {
	public static final int STATUS_OK = 0;

	public static final int EXEC_ERROR = -2000;

	public static final int INCOMPLETE_ERROR = -2001;

	int launch(String cmd);

	int launch(String cmd, File workDir, IStreamListener stdOutListener);

	void asyncLaunch(String cmd, File workDir, IStreamListener stdOutListener);

	boolean hasTerminated();

	void terminate();

	void printStdOutMessage(String msg);
	
	void printStdErrMessage(String msg);

	void setEnvironment(String[] environment);

	void setPrintToConsole(boolean printToConsole);
	
	void setRedirectErrToOut(boolean redirectErrToOut);
	
	void setFilterErrorMessage(boolean filterErrorMessage);
	
	String flush();
}